<?
class Campagna {
	function getElenco($min,$max,$orderby,$where) {
		$rs = lancia_procedura("elenco_campagna", "$min,$max,'$orderby',$where");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","num_flayer","aperta","archivio")).'}';
	}
	
	function getElencoCliente($idcliente,$min,$max,$orderby,$aperta) {
		$rs = lancia_procedura("elenco_campagna_cliente", "$idcliente,$min,$max,'$orderby',$aperta");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","num_flayer")).'}';
	}
	
	function getRecord($id) {
		$rs = lancia_procedura("leggi_campagna", "$id");
		$campagna = Get_json("campagna", $rs, Array("idcampagna","data_start","data_end","nome","num_flayer","num_smart","citta","provincia","aperta","archivio"));
		if($rs) $rs->Close();
		$rs = lancia_procedura("leggi_campagna_zona", "$id");
		$zone = Get_json("zone", $rs, Array("idzona","citta","provincia","nome"), false);
		if($rs) $rs->Close();
		$rs = lancia_procedura("leggi_campagna_cliente", "$id");
		$clienti = Get_json("clienti", $rs, Array("idcliente","nome"), false);
		if($rs) $rs->Close();
		$rs = lancia_procedura("leggi_smart_persona", "$id");
		$smart = Get_json("smart", $rs, Array("idpersona","idsmart","num_flayer","modello"), false);
		if($rs) $rs->Close();
		return '{'.$campagna.','.$zone.','.$clienti.','.$smart.'}';
	}
	
	function salva($id,$nome,$data_start,$data_end,$num_flayer,$num_smart,$provincia,$citta,$zone,$clienti,$smart) {
		global $conn;
		$rs = lancia_procedura("inserisci_campagna", "$id,'$clienti','$data_start','$data_end','$nome','$citta','$provincia',$num_smart,$num_flayer,'$zone'");
		if($rs->Fields("msg")=='' && $rs->Fields("idcampagna")!="") {
			// inserimento smart-persone
			$idcampagna = $rs->Fields("idcampagna");
			$arrSmart = explode(";", $smart);
			$rs->NextRecordSet();
			$rs->Close;
			if(count($arrSmart)>0) {
				$errori = Array();
				$rs_pulisci = lancia_procedura("pulisci_smart_persona", $idcampagna);
				foreach ($arrSmart as $i => $strSmart) {
					$arrSmart1 = explode("|", $strSmart); //esplodo i dati idsmart|idpersona|num_flayer
					if(count($arrSmart1) > 0) {
						if($arrSmart1[0]!="" && $arrSmart1[1]!="" && $arrSmart1[2]!="") {
							$rs_smart = lancia_procedura("inserisci_smart_persona", $arrSmart1[1].",$idcampagna,".$arrSmart1[0].",".$arrSmart1[2]);
							if($rs_smart->Fields("msg")!="")
							  array_push($errori, $rs_smart->Fields("msg"));
							$rs_smart->Close();		
						}
					} else {
						array_push($errori, "Dati elenco smartphone vuoti");
					}
				}
				if(count($errori)==0) { // tutto ok!!
					return '{"error":""}';
				} else 
					return '{"error":"Problemi nel salvataggio degli smartphone: '.implode(",", $errori).'"}';
			} else {
				return '{"error":"Problemi nel salvataggio degli smartphone"}';
			}
		} else
			return '{"error":"'.$rs->Fields("msg").'"}';
	}
	
	function attiva($id,$attivo) {
		$rs = lancia_procedura("apri_campagna", "$id,$attivo");
		return '{"error":""}';
	}
	
	function archivia($id,$archivio) {
		$rs = lancia_procedura("archivia_campagna", "$id,$archivio");
		return '{"error":""}';
	}
	
	function elimina($id) {
		$rs = lancia_procedura("elimina_campagna", $id);
		return '{"error":"'.$rs->Fields("msg").'"}';
	}
	
	function cerca($nome,$data_start,$data_end,$provincia,$citta,$cerca,$min,$max) {
		$rs = lancia_procedura("cerca_campagna", "'$nome','$data_start','$data_end','$provincia','$citta','$cerca',$min,$max");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","num_flayer","aperta","archivio","msg")).'}';
	}

	function cercaCliente($idcliente,$nome,$data_start,$data_end,$provincia,$citta,$min,$max) {
		//die("$idcliente,'$nome','$data_start','$data_end','$provincia','$citta',$min,$max");
		$rs = lancia_procedura("cerca_campagna_cliente", "$idcliente,'$nome','$data_start','$data_end','$provincia','$citta',$min,$max");
		return '{'.Get_json("rows", $rs, Array("idcampagna","data_start2","data_end2","nome","num_flayer","aperta","archivio","msg")).'}';
	}
	
	function getCoordinate($idcampagna) {
		$rs = lancia_procedura("leggi_campagna", $idcampagna);
		$citta = $rs->Fields("citta");
		$provincia = $rs->Fields("provincia");
		$rs->Close();
		$rs = lancia_procedura("leggi_log_percorso", $idcampagna);
		return '{"citta":"'.$citta.'","provincia":"'.$provincia.'",'.Get_json("rows", $rs, Array("idlog","data_log","idsmart","coord_x","coord_y","foto","corriere","colore")).'}';
	}
	
	function getSms($idcampagna) {
		$rs = lancia_procedura("elenco_messaggio_campagna", $idcampagna);
		return '{'.Get_json("rows", $rs, Array("idmessaggio","idsmart","data_messaggio","testo","inviato","confermato","idcampagna","corriere")).'}';
	}
	
	function salvaSms($smarts,$idcampagna,$testo) {
		foreach ($smarts as $idsmart) {
			$rs = lancia_procedura("inserisci_messaggio","0,$idsmart,'$testo',$idcampagna");
		}
		return '{"error":""}';
	}
}
?>